package RandomAccessFile;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.RandomAccessFile;

public class RandowAccessFileDemo9 {

	/**
	 * 使用RandomAccessFile向文件中写数据
	 * @throws FileNotFoundException 
	 */
	public static void main(String[] args){
		/**
		 * 创建要写入的文件所对应的File对象
		 */
		File file =new File("raf.txt");
		if(file.exists()){
			try{
				file.createNewFile();
			}catch(IOException e){
				System.out.println("创建文件失败！！！");
				return;
			}
		}
		/**
		 * 创建用于操作文件内容的RandomAccessFile
		 * 该构造方法的第二个参数为操作模式，支持两个值：
		 * “r”：对文件内容只读
		 * “rw”：对文件内容读写
		 */
		try {
			RandomAccessFile raf= new RandomAccessFile(file,"rw");
			/**
			 * write(int d)
			 * 写给定的int值的低8位（写一个字节）
			 * int 
			 * 00000000	00000000 00000000 00000001
			 */
			raf.write('A');
			raf.write('B');
			/**
			 * 写一个int最大值
			 *                            vvvvvvvv
			 * 01111111 11111111 11111111 11111111
			 * 
			 * 
			 */
			int max=Integer.MAX_VALUE;
			
			raf.write(max>>>24);//第一个字节
			raf.write(max>>>16);//第二个字节
			raf.write(max>>>8);//第三个字节
			raf.write(max);//第四个字节
			
			/**
			 * 进行了读写操作后，最后要将其关闭！
			 * 通常该方法是放在finally中的！*/
			raf.close();
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		}catch(IOException e){
			e.printStackTrace();
		}

	}

}
